package com.jctrip.hotel.source.service.meituan;

import com.jctrip.hotel.source.model.OrderDataResult;
import com.jctrip.hotel.source.model.PriceCheckParam;
import com.jctrip.hotel.source.model.meituan.req.*;
import com.jctrip.hotel.source.model.meituan.resp.*;
import com.jctrip.hotel.source.model.wehotel.req.OrderData;

/**
 * @Author: zxy
 * @CreateTime: 2023-12-25 18:08
 * @Description:
 */
public interface MeituanService {
    String parseHotelId(String innId);

    String parseInnId(String hotelId);

    String getProduct(String hotelId, String roomTypeCode, String sourceId);

    PoiListResp poiListMeituan(PoiListReq req, Integer partnerId, String accesskey, String secretKey);

    GoodsRpResp goodsRpMeituan(GoodsRpReq req, Integer partnerId, String accesskey, String secretKey);

    ContentResp contentMeituan(ContentReq req, Integer partnerId, String accesskey, String secretKey);

    RealroomContentResp realroomContentMeituan(RealroomContentReq req, Integer partnerId, String accesskey, String secretKey);

    OrderCheckResp orderCheckMeituan(OrderCheckReq req, Integer partnerId, String accesskey, String secretKey);

    OrderBookingResp orderBookingMeituan(OrderBookingReq req, Integer partnerId, String accesskey, String secretKey);

    OrderCancelResp orderCancelMeituan(OrderCancelReq req, Integer partnerId, String accesskey, String secretKey);

    OrderQueryResp orderQueryMeituan(OrderQueryReq req, Integer partnerId, String accesskey, String secretKey);

    OrderReminderResp orderReminderMeituan(OrderReminderReq req, Integer partnerId, String accesskey, String secretKey);

    OrderDataResult postOrder(OrderBookingReq req, Integer partnerId, String accesskey, String secretKey, PriceCheckParam priceCheck);

    void cancelOrder(OrderCancelReq req, Integer partnerId, String accesskey, String secretKey);

    OrderData queryOrder(OrderQueryReq req, Integer partnerId, String accesskey, String secretKey);

    void orderCallback(MeituanReq req);

    void poiCallback(MeituanReq req);

    void goodCallback(MeituanReq req);

    Integer getOrderStatus(Integer orderStatus);
}
